package final_wearebatman_view;

import final_wearebatman_model.Composite;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;

//a kompozit elemet kirajzoló osztály
public class CompositeView implements Ipaintable {

    private Composite comp;
    private CircuitView circuitview;
    private int posX; //x koordináta
    private int posY;    //y koordináta
    private String name; //név

    //konstruktor
    public CompositeView(Composite c, String name, CircuitView cv, int pX, int pY) {
        this.comp = c;
        this.circuitview = cv;
        this.posX = pX;
        this.posY = pY;        
        this.name = name;
    }

    //kirajzolás
    public void paint(Graphics2D g) {
        AffineTransform aT = g.getTransform();
        g.translate(posX, posY);
        g.drawRect(8,0, 100, 50);
        for(int i=0;i<this.comp.getInputNumber();i++)
            g.drawLine(0, 8+i*8, 8, 8+i*8);
        for(int i=0;i<this.comp.getOutputNumber();i++)
            g.drawLine(108, 8+i*8, 116, 8+i*8);
        g.drawString(name, 12, 45);
        g.setTransform(aT);
    }

    //x koordináta lekérése
    public int getPosX() {
        return this.posX;
    }

    //y koordináta lekérése
    public int getPosY() {
        return this.posY;
    }   

    //inputok helyének beállítása
    public Point getInputPinPosition(int id) {
        return new Point(posX, posY + 8 + 8*id);
    }

    //outputok helyének beállítása
    public Point getOutputPinPosition(int id) {
        return new Point(posX+108+8, posY+8+8*id);
    }

    public Rectangle getClickArea() {
        return new Rectangle();
    }

    public void onClick() {

    }

    //forgatási szög lekérése
    public int getAngle() {
        return 0;
    }
}
